package com.njxxted.activiti.modules.api;

import com.njxxted.activiti.common.annotation.FeignClient;
import com.njxxted.activiti.common.response.ResponseVo;
import com.njxxted.activiti.modules.api.entity.Dict;
import com.njxxted.activiti.modules.api.entity.FileEntity;
import com.njxxted.activiti.modules.api.entity.SysLogErr;
import feign.Param;
import feign.QueryMap;
import feign.RequestLine;
import feign.Response;
import org.springframework.web.multipart.MultipartFile;

/**
 * 描述：调用公共服务接口 api
 * <p>
 * 作者：Ostrich Hu
 * 时间：2019/10/8 18:35 星期二
 */
@FeignClient
public interface CommonApi {

    /**
     * 根据 条件查询文件
     */
    @RequestLine("GET /file/list")
    ResponseVo getList(@QueryMap FileEntity fileEntity);

    /**
     * 单文件上传
     */
    @RequestLine("POST /file/upload")
    ResponseVo uploadFile(@Param("file") MultipartFile file, @QueryMap FileEntity fileEntity, @Param("path") String path);


    /**
     * 文件下载
     */
    @RequestLine("GET /file/download/{fileCode}")
    Response findFileByFileCode(@Param("fileCode") String fileCode);

    /**
     * 获取字典树
     *
     * @return list（code:value）
     */
    @RequestLine("GET /dict/tree")
    ResponseVo getTreeList(@QueryMap Dict dict);

    /**
     * 根据字典类型查询字典数据
     *
     * @param type 字典类型
     * @return list（code:value）
     */
    @RequestLine("GET /dict/kv/{type}")
    ResponseVo getKVList(@Param("type") String type);

    /**
     * 根据条件查询数据字典
     *
     * @param dict 字典参数
     * @return ResponseVo
     */
    @RequestLine("GET /dict/list")
    ResponseVo getDictList(@QueryMap Dict dict);

    /**
     * 查询异常日志
     *
     * @param sysLogErr/
     * @return
     */
    @RequestLine("GET /sysLogErr/list")
    ResponseVo getSysLogErrList(@QueryMap SysLogErr sysLogErr);

    /**
     * 保存异常日志
     *
     * @param sysLogErr
     * @return
     */
    @RequestLine("POST /sysLogErr/save")
    ResponseVo sysLogErrSave(@QueryMap SysLogErr sysLogErr);

}
